package org.jeecgframework.web.system.pojo.base;

import java.math.BigDecimal;
import java.util.Date;
import java.lang.String;
import java.lang.Double;
import java.lang.Integer;
import java.math.BigDecimal;
import javax.persistence.*;
import javax.xml.soap.Text;
import java.sql.Blob;
import java.util.List;

import org.codehaus.jackson.annotate.JsonIgnore;
import org.hibernate.annotations.GenericGenerator;
import org.jeecgframework.poi.excel.annotation.Excel;

/**
 * @author onlineGenerator
 * @version V1.0
 * @Title: Entity
 * @Description: 申请备件明细列表
 * @date 2018-01-29 13:14:04
 */
@Entity
@Table(name = "cbs_equipment_apply_detail", schema = "")
@SuppressWarnings("serial")
public class CbsEquipmentApplyDetailEntity implements java.io.Serializable {
    /**
     * 主键
     */
    private String id;
    /**
     * 编号
     */
    @Excel(name = "编号")
    private String code;
    /**
     * 备件申请单ID
     */
    @Excel(name = "备件申请单ID")
    private CbsEquipmentApplyEntity applyId;
    /**
     * 备件类型ID
     */
    @Excel(name = "备件类型ID")
    private ZyEquipmentTypeEntity typeId;
    /**
     * 备件类型名称
     */
    @Excel(name = "备件类型名称")
    private String typeDes;
    /**
     * 备件号ID
     */
    @Excel(name = "备件号ID")
    private ZyEsItemEntity itemId;
    /**
     * 备件号名称
     */
    @Excel(name = "备件号名称")
    private String item;

    /**
     * 备件序列号SN
     */
    @Excel(name = "备件序列号SN")
    private String sn;
    /**
     * 数量
     */
    @Excel(name = "数量")
    private Integer total;
    /**
     * 申请优先级
     */
    @Excel(name = "申请优先级")
    private Integer applyLayer;
    /**
     * 备件说明
     */
    @Excel(name = "备件说明")
    private String memo;
    /**
     * 创建人名称
     */
    private String createName;
    /**
     * 创建人登录名称
     */
    private String createBy;
    /**
     * 创建日期
     */
    private Date createDate;
    /**
     * 更新人名称
     */
    private String updateName;
    /**
     * 更新人登录名称
     */
    private String updateBy;
    /**
     * 更新日期
     */
    private Date updateDate;

    @Column(name = "item_desc", nullable = true)
    public String getItemDesc() {
        return itemDesc;
    }

    public void setItemDesc(String itemDesc) {
        this.itemDesc = itemDesc;
    }

    /**
     * 备件描述
     */
    @Excel(name = "备件描述")
    private String itemDesc;

    //只做页面显示用
    List<CbsDeliverEquipmentEntity> cbsDeliverEquipmentEntityList;

    /**
     * 方法: 取得java.lang.String
     *
     * @return: java.lang.String  主键
     */
    @Id
    @GeneratedValue(generator = "paymentableGenerator")
    @GenericGenerator(name = "paymentableGenerator", strategy = "uuid")
    @Column(name = "ID", nullable = false, length = 36)
    public String getId() {
        return this.id;
    }

    /**
     * 方法: 设置java.lang.String
     *
     * @param: java.lang.String  主键
     */
    public void setId(String id) {
        this.id = id;
    }

    /**
     * 方法: 取得java.lang.String
     *
     * @return: java.lang.String  编号
     */
    @Column(name = "CODE", nullable = true, length = 32)
    public String getCode() {
        return this.code;
    }

    /**
     * 方法: 设置java.lang.String
     *
     * @param: java.lang.String  编号
     */
    public void setCode(String code) {
        this.code = code;
    }

    /**
     * 方法: 取得java.lang.String
     *
     * @return: java.lang.String  备件申请单ID
     */
    //@Column(name ="APPLY_ID",nullable=true,length=32)
    @JsonIgnore
    @ManyToOne(cascade = CascadeType.DETACH, fetch = FetchType.EAGER)
    @JoinColumn(name = "APPLY_ID")
    public CbsEquipmentApplyEntity getApplyId() {
        return this.applyId;
    }

    /**
     * 方法: 设置java.lang.String
     *
     * @param: java.lang.String  备件申请单ID
     */
    public void setApplyId(CbsEquipmentApplyEntity applyId) {
        this.applyId = applyId;
    }

    /**
     * 方法: 取得java.lang.String
     *
     * @return: java.lang.String  备件类型ID
     */
//    @JsonIgnore
    @ManyToOne(cascade = CascadeType.DETACH, fetch = FetchType.EAGER)
    @JoinColumn(name = "TYPE_ID")
    public ZyEquipmentTypeEntity getTypeId() {
        return this.typeId;
    }

    /**
     * 方法: 设置java.lang.String
     *
     * @param: java.lang.String  备件类型ID
     */
    public void setTypeId(ZyEquipmentTypeEntity typeId) {
        this.typeId = typeId;
    }

    /**
     * 方法: 取得java.lang.String
     *
     * @return: java.lang.String  备件类型名称
     */
    @Column(name = "TYPE_DES", nullable = true, length = 32)
    public String getTypeDes() {
        return this.typeDes;
    }

    /**
     * 方法: 设置java.lang.String
     *
     * @param: java.lang.String  备件类型名称
     */
    public void setTypeDes(String typeDes) {
        this.typeDes = typeDes;
    }

    /**
     * 方法: 取得java.lang.String
     *
     * @return: java.lang.String  备件号ID
     */
//    @JsonIgnore
    @ManyToOne(cascade = CascadeType.DETACH, fetch = FetchType.EAGER)
    @JoinColumn(name = "ITEM_ID")
    public ZyEsItemEntity getItemId() {
        return this.itemId;
    }

    /**
     * 方法: 设置java.lang.String
     *
     * @param: java.lang.String  备件号ID
     */
    public void setItemId(ZyEsItemEntity itemId) {
        this.itemId = itemId;
    }

    /**
     * 方法: 取得java.lang.String
     *
     * @return: java.lang.String  备件号名称
     */
    @Column(name = "ITEM", nullable = true, length = 32)
    public String getItem() {
        return this.item;
    }

    /**
     * 方法: 设置java.lang.String
     *
     * @param: java.lang.String  备件号名称
     */
    public void setItem(String item) {
        this.item = item;
    }

    /**
     * 方法: 取得java.lang.String
     *
     * @return: java.lang.String  备件序列号SN
     */
    @Column(name = "SN", nullable = true, length = 32)
    public String getSn() {
        return this.sn;
    }

    /**
     * 方法: 设置java.lang.String
     *
     * @param: java.lang.String  备件序列号SN
     */
    public void setSn(String sn) {
        this.sn = sn;
    }

    /**
     * 方法: 取得java.lang.Integer
     *
     * @return: java.lang.Integer  数量
     */
    @Column(name = "TOTAL", nullable = true, length = 32)
    public Integer getTotal() {
        return this.total;
    }

    /**
     * 方法: 设置java.lang.Integer
     *
     * @param: java.lang.Integer  数量
     */
    public void setTotal(Integer total) {
        this.total = total;
    }

    /**
     * 方法: 取得java.lang.Integer
     *
     * @return: java.lang.Integer  申请优先级
     */
    @Column(name = "APPLY_LAYER", nullable = true, length = 32)
    public Integer getApplyLayer() {
        return this.applyLayer;
    }

    /**
     * 方法: 设置java.lang.Integer
     *
     * @param: java.lang.Integer  申请优先级
     */
    public void setApplyLayer(Integer applyLayer) {
        this.applyLayer = applyLayer;
    }

    /**
     * 方法: 取得java.lang.String
     *
     * @return: java.lang.String  备件说明
     */
    @Column(name = "MEMO", nullable = true, length = 32)
    public String getMemo() {
        return this.memo;
    }

    /**
     * 方法: 设置java.lang.String
     *
     * @param: java.lang.String  备件说明
     */
    public void setMemo(String memo) {
        this.memo = memo;
    }

    /**
     * 方法: 取得java.lang.String
     *
     * @return: java.lang.String  创建人名称
     */
    @Column(name = "CREATE_NAME", nullable = true, length = 50)
    public String getCreateName() {
        return this.createName;
    }

    /**
     * 方法: 设置java.lang.String
     *
     * @param: java.lang.String  创建人名称
     */
    public void setCreateName(String createName) {
        this.createName = createName;
    }

    /**
     * 方法: 取得java.lang.String
     *
     * @return: java.lang.String  创建人登录名称
     */
    @Column(name = "CREATE_BY", nullable = true, length = 50)
    public String getCreateBy() {
        return this.createBy;
    }

    /**
     * 方法: 设置java.lang.String
     *
     * @param: java.lang.String  创建人登录名称
     */
    public void setCreateBy(String createBy) {
        this.createBy = createBy;
    }

    /**
     * 方法: 取得java.util.Date
     *
     * @return: java.util.Date  创建日期
     */
    @Column(name = "CREATE_DATE", nullable = true, length = 20)
    public Date getCreateDate() {
        return this.createDate;
    }

    /**
     * 方法: 设置java.util.Date
     *
     * @param: java.util.Date  创建日期
     */
    public void setCreateDate(Date createDate) {
        this.createDate = createDate;
    }

    /**
     * 方法: 取得java.lang.String
     *
     * @return: java.lang.String  更新人名称
     */
    @Column(name = "UPDATE_NAME", nullable = true, length = 50)
    public String getUpdateName() {
        return this.updateName;
    }

    /**
     * 方法: 设置java.lang.String
     *
     * @param: java.lang.String  更新人名称
     */
    public void setUpdateName(String updateName) {
        this.updateName = updateName;
    }

    /**
     * 方法: 取得java.lang.String
     *
     * @return: java.lang.String  更新人登录名称
     */
    @Column(name = "UPDATE_BY", nullable = true, length = 50)
    public String getUpdateBy() {
        return this.updateBy;
    }

    /**
     * 方法: 设置java.lang.String
     *
     * @param: java.lang.String  更新人登录名称
     */
    public void setUpdateBy(String updateBy) {
        this.updateBy = updateBy;
    }

    /**
     * 方法: 取得java.util.Date
     *
     * @return: java.util.Date  更新日期
     */
    @Column(name = "UPDATE_DATE", nullable = true, length = 20)
    public Date getUpdateDate() {
        return this.updateDate;
    }

    /**
     * 方法: 设置java.util.Date
     *
     * @param: java.util.Date  更新日期
     */
    public void setUpdateDate(Date updateDate) {
        this.updateDate = updateDate;
    }

    @Transient     //发货单
    public List<CbsDeliverEquipmentEntity> getCbsDeliverEquipmentEntityList() {
        return cbsDeliverEquipmentEntityList;
    }

    public void setCbsDeliverEquipmentEntityList(List<CbsDeliverEquipmentEntity> cbsDeliverEquipmentEntityList) {
        this.cbsDeliverEquipmentEntityList = cbsDeliverEquipmentEntityList;
    }
}
